"""
#作者：cacho_37967865
#博客：https://blog.csdn.net/sinat_37967865
#文件：redis_model.py
#日期：2019-11-15
#备注：python操作redis，一个高性能key-value的存储系统    pip install redis
"""

import redis


# 连接池的原理是, 通过预先创建多个连接, 当进行redis操作时, 直接获取已经创建的连接进行操作, 而且操作完成后, 不会释放, 用于后续的其他redis操作，
# 这样就达到了避免频繁的redis连接创建和释放的目的, 从而提高性能。redis模块采用ConnectionPool来管理对redis server的所有连接。
pool = redis.ConnectionPool(host='localhost', port=6379)
conn = redis.Redis(connection_pool=pool)

def base_operate():
    conn.set('name', 'LinWOW')           # String类型存
    conn.set('name', 'test')             # String类型修改：默认不存在则创建，存在则修改
    print(conn.get('name'))              # String类型取     b'test'

    # 批量操作
    conn.mset({"key1": 'value1', "key2": 'value2'})
    print(conn.mget("key1", "key1"))      # [b'value1', b'value1']

    print('返回key1对应值的字节长度（一个汉字3个字节）：',conn.strlen("key1"))        # value1->6



if __name__ == '__main__':
    base_operate()
